- Linux中广泛使用的两种主要的PMS(Package management system, PMS)基础工具是dpkg和rpm,基于debian的发行版(如Ubuntu和Mint)使用的是dpkg命令,这些发行版的PMS工具也是以该命令为基础的,dpkg会直接和Linux系统上的PMS交互,用来安装、管理和删除软件包;基于Red Hat的发行版(如Fedora、OpenSUSE)使用的是rpm命令,该命令是其PMS的底层基础。
dpkg命令是基于Debian系PMS工具的核心,包含在这个PMS中的其他工具还有:
- apt-get
- apt-cache
- aptitude
dpkg是软件包管理系统工具,而aptitude则是完整版的软件包管理系统。
- 如果安装了aptitude,只需要在shell提示符键入aptitude即可,如果想快速显示某个特定包的详细信息,可以直接在命令行下以单个命令的方式使用
aptitude:aptitude show package_name
- 无法通过aptitude看到跟某个特定软件包相关的所有文件的列表,要得到这个列表,就必须使用dpkg命令:
dpkg -L package_name
,同样可以进行反向操作,查找某个特定文件属于哪个软件包:dpkg --search absolute_file_name
,注意在使用的时候必须用绝对文件路径。
- 可以使用aptitude命令加search选项确定准备安装的软件名称:aptitude search package_name,search选项的好处就是无需在package_name周围加通配符,通配符会隐式添加,在每个包名字的前面都有一个p或i,如果看到一个i,说明这个包已经安装到了你的系统上,如果看到一个p或v,说明这个包可用,但还没安装。
- 使用aptitude install命令安装软件包:
aptitude install package_name
- 可以使用aptitude safe-upgrade命令更新系统上的软件,这个命令不需要使用软件包名称作为参数,因为safe-upgrade选项会将所有已安装的包更新到软件仓库中的最新版本。
- 要想只删除软件包而不删除数据和配置文件,可以使用aptitude的remove选项,要想删除软件包和相关的数据和配置文件,可用purge选项:
sudo aptitude purge wine
,查看软件包是否已删除,可以再用aptitude的search选项,如果在软件包的前面看到一个c,说明软件已删除,但配置文件尚未从系统中删除,如果前面是个p的话,说明配置文件也已删除。
- aptitude默认的软件仓库位置是在安装Linux发行版时设置的,具体位置存储在/etc/apt/sources.list中,sources.list中使用下面的结构来指定仓库源:
deb(or deb-src) address distribution_name package_type_list
,deb或deb-src的值表明了软件包的类型,deb说明这是一个已编译程序源,而deb-src则说明这是一个源代码的源;address条目是软件仓库的Web地址;distribution_name是这个软件仓库的发行版版本的名称,这未必是说你使用的发行版名称,它只是说明这个Linux发行版正在使用这个软件仓库;package_type_list可能不止一个词,它还表明仓库里面有什么类型的包。